/*
This file is part of Docking@Home.
http://docking.gcl.cis.udel.edu
Copyright (C) 2009 University of Delaware

Docking@Home is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Docking@Home is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Docking@Home.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
	Filename: Ligand.h
	Description: A biological model that represents a ligand
	Revision History: 
		Created - 12/04/08
	Author: Robert Keller (12/04/08 -> Current)
*/

#ifndef _Ligand_h
#define _Ligand_h

#include "BioModel.h"

#define LIGAND_MAX_FILE_NAME_LENGTH 256

class Ligand : public BioModel
{
public:

	// Constructor / Destructor

	Ligand ();
	Ligand (const char pdb[BIOMODEL_MAX_FILNAME_LENGTH],const char psf[BIOMODEL_MAX_FILNAME_LENGTH]);
	~Ligand ();

	// Initialization Functions

	void init (const char pdb[BIOMODEL_MAX_FILNAME_LENGTH],const char psf[BIOMODEL_MAX_FILNAME_LENGTH]);

	// Required BioModel Functions 

	void draw ();
	void drawMultiple (bool useThisTransformation);

	// View Changing Functions

	void addToTranslateX ();
	void addToTranslateY ();
	void addToTranslateZ ();

	void subtractFromTranslateX ();
	void subtractFromTranslateY ();
	void subtractFromTranslateZ ();

private:

	// Default starting distance the camera is away from the 
	// model
	const float DEFAULT_CAMERA_DISTANCE;

	// Default translation values For moving models
	// when a users clicks or hits a key
	const float DEFAULT_X_TRANSLATE_VALUE;
	const float DEFAULT_Y_TRANSLATE_VALUE;
	const float DEFAULT_Z_TRANSLATE_VALUE;
};

#endif
